package com.corpgovernment.common.utils;

import com.ctrip.framework.apollo.core.utils.StringUtils;

import java.util.regex.Pattern;

/**
 * @program: api-client
 * @description: 密码复杂度校验工具类
 * @author: wubing
 * @create: 2019-11-27 10:52
 */
public class PasswordRegUtils {

    private static final String passwordReg = "^(?![\\d]+$)(?![a-z]+$)(?![A-Z]+$)(?![^\\da-zA-Z]+$).{6,20}$";


    /**
     * 校验密码是否符合正则规范
     * 密码复杂度要求：长度6~20位，区分大小写，包含数字、小写字母、大写字母、特殊字符中的至少两种组合。
     */
    public static boolean checkPasswordComplexity(String password) {
        if (StringUtils.isBlank(password)) {
            return false;
        }
        return Pattern.compile(passwordReg).matcher(password).matches();
    }

}